/**
 * Copyright(c) 2013 Jade Techonologies, Ltd.
 *
 * History:
 *   2011-5-25 18:24:11 Created by sky
 */
package com.jade.bss.base.customer;

import java.util.List;
import java.util.Map;

import com.jade.bss.base.BssException;
import com.jade.framework.base.criterion.Criteria;

/**
 * 用户映射关系数据访问接口。
 *
 * @author sky
 * @version 1.0 2011-5-25 18:24:11
 */
public interface UserMappingDao
{
    /**
     * 添加对应关系.
     *
     * @param userMapping 对应关系。
     */
    public void addMapping(UserMapping userMapping);

    /**
     * 获取对应关系
     *
     * @param customerId 客户标识
     * @param appCode    应用代码
     * @return 对应关系
     */
    public UserMapping getMapping(long customerId, String appCode);

    /**
     * 获取对应关系
     *
     * @param appCode 应用代码
     * @param userId  用户标识
     * @return 对应关系
     */
    public UserMapping getMapping(String appCode, String userId);

    /**
     * 客户和应用中用户的映射关系。
     *
     * @param customerId
     * @return 应用标识和用户标识
     */
    public Map<String, String> getUserMap(long customerId);

    /**
     * 删除对应关系
     *
     * @param customerId 客户标识
     * @param appCode    应用代码
     */
    public void removeMapping(long customerId, String appCode)
            throws BssException;

    /**
     * 删除对应关系
     *
     * @param customerId 客户标识
     */
    public void removeMapping(long customerId);

    List<UserMapping> listMapping(Criteria criteria);
}
